package com.biunova.novapay.entity;

import java.math.BigDecimal;
import java.time.LocalDateTime;

public class Order {

    private Long order_id; // 订单ID
    private Long shop_id; // 店铺ID
    private String prod_name; // 产品名称
    private String user_id; // 订购用户ID
    private String order_number; // 订购流水号
    private BigDecimal total; // 订单总额
    private BigDecimal actual_total; // 实际支付金额
    private Integer pay_type; // 支付方式 (0: 手动代付, 1: 微信支付, 2: 支付宝)
    private String remarks; // 订单备注
    private Integer status; // 订单状态 (0: 待付款, 1: 支付成功, 2: 待发货, ...)
    private Integer product_nums; // 订单商品总数
    private LocalDateTime create_time; // 订购时间
    private LocalDateTime pay_time; // 付款时间
    private LocalDateTime finally_time; // 完成时间
    private LocalDateTime cancel_time; // 取消时间
    private Integer is_payed; // 是否支付 (1: 已支付, 0: 未支付)
    private Integer delete_status; // 订单删除状态 (0: 未删除, 1: 回收站, 2: 永久删除)
    private Integer refund_sts; // 退款状态 (0: 默认, 1: 处理中, 2: 处理完成)
    private BigDecimal reduce_amount; // 优惠总额
    private Integer order_type; // 订单类型
    private Integer close_type; // 订单关闭原因

    // Getters and Setters with Java naming conventions

    public Long getOrderId() {
        return order_id;
    }

    public void setOrderId(Long order_id) {
        this.order_id = order_id;
    }

    public Long getShopId() {
        return shop_id;
    }

    public void setShopId(Long shop_id) {
        this.shop_id = shop_id;
    }

    public String getProdName() {
        return prod_name;
    }

    public void setProdName(String prod_name) {
        this.prod_name = prod_name;
    }

    public String getUserId() {
        return user_id;
    }

    public void setUserId(String user_id) {
        this.user_id = user_id;
    }

    public String getOrderNumber() {
        return order_number;
    }

    public void setOrderNumber(String order_number) {
        this.order_number = order_number;
    }

    public BigDecimal getTotal() {
        return total;
    }

    public void setTotal(BigDecimal total) {
        this.total = total;
    }

    public BigDecimal getActualTotal() {
        return actual_total;
    }

    public void setActualTotal(BigDecimal actual_total) {
        this.actual_total = actual_total;
    }

    public Integer getPayType() {
        return pay_type;
    }

    public void setPayType(Integer pay_type) {
        this.pay_type = pay_type;
    }

    public String getRemarks() {
        return remarks;
    }

    public void setRemarks(String remarks) {
        this.remarks = remarks;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Integer getProductNums() {
        return product_nums;
    }

    public void setProductNums(Integer product_nums) {
        this.product_nums = product_nums;
    }

    public LocalDateTime getCreateTime() {
        return create_time;
    }

    public void setCreateTime(LocalDateTime create_time) {
        this.create_time = create_time;
    }

    public LocalDateTime getPayTime() {
        return pay_time;
    }

    public void setPayTime(LocalDateTime pay_time) {
        this.pay_time = pay_time;
    }

    public LocalDateTime getFinallyTime() {
        return finally_time;
    }

    public void setFinallyTime(LocalDateTime finally_time) {
        this.finally_time = finally_time;
    }

    public LocalDateTime getCancelTime() {
        return cancel_time;
    }

    public void setCancelTime(LocalDateTime cancel_time) {
        this.cancel_time = cancel_time;
    }

    public Integer getIsPayed() {
        return is_payed;
    }

    public void setIsPayed(Integer is_payed) {
        this.is_payed = is_payed;
    }

    public Integer getDeleteStatus() {
        return delete_status;
    }

    public void setDeleteStatus(Integer delete_status) {
        this.delete_status = delete_status;
    }

    public Integer getRefundSts() {
        return refund_sts;
    }

    public void setRefundSts(Integer refund_sts) {
        this.refund_sts = refund_sts;
    }

    public BigDecimal getReduceAmount() {
        return reduce_amount;
    }

    public void setReduceAmount(BigDecimal reduce_amount) {
        this.reduce_amount = reduce_amount;
    }

    public Integer getOrderType() {
        return order_type;
    }

    public void setOrderType(Integer order_type) {
        this.order_type = order_type;
    }

    public Integer getCloseType() {
        return close_type;
    }

    public void setCloseType(Integer close_type) {
        this.close_type = close_type;
    }
}